if(!jsx3.lang.Class.forName("tibco.admin.enterpriseAssets.servers.nodes.Tabs")) {
    tibco.admin.Main.loadResource("tibco/admin/enterpriseAssets/servers/nodes/jss/jss.xml", "tibco.admin", "jss_100", "ljss", false);
    jsx3.Class.defineClass(
            'tibco.admin.enterpriseAssets.servers.nodes.Tabs', // full name of the class to create
            jsx3.gui.LayoutGrid, //  extends jsx3.lang.Object
            [tibco.admin.enterpriseAssets.servers.LeftNavInterface], // dose not implements any interfaces
            function(tab) {

                tab.editMode = false;
                tab.workspace = null;

                tab.instance = null

                tab.prototype.init = function() {
                    this.jsxsuper();
                }

                tab.prototype.getNamespace = function() {
                    return "tibco.admin";
                }

                tab.prototype.destroyPlugin = function() {
                }

                tab.getInstance = function(args) {
                    if(!this.instance) {
                        this.instance = new tibco.admin.enterpriseAssets.servers.nodes.Tabs();
                    }
                    return this.instance;
                }

                tab.prototype.loadComponent = function(parent) {
                    tibco.admin.Main.loadUIResourceAsync(parent, "tibco.admin", "tibco/admin/enterpriseAssets/servers/nodes/components/nodeTab.xml", true);
                }

                tab.prototype.getLeftText = function() {
                    return tibco.admin.Main.getServer().getDynamicProperty("@@lbl_AdminInst_100");
                }

                tab.prototype.subscribeAll = function() {
                    var me = tibco.admin.enterpriseAssets.servers.nodes.Tabs.getInstance();
                    tibco.admin.PubSub.subscribe(tibco.admin.enterpriseAssets.servers.EventID.ADD_STARTED, me, me.setName);
                    tibco.admin.PubSub.subscribe(tibco.admin.enterpriseAssets.servers.EventID.NODE_SELECTED, me, me.setName);
                    tibco.admin.PubSub.subscribe(tibco.admin.enterpriseAssets.servers.EventID.NODE_REFRESHED, me, me.addOver);
                    tibco.admin.PubSub.subscribe(tibco.admin.enterpriseAssets.servers.EventID.ADD_OVER, me, me.addOver);
                }

                tab.prototype.setName = function(objEvent) {
                    var label = tibco.admin.enterpriseAssets.servers.nodes.Tabs.getInstance().guiobject.getDescendantOfName("blkAdminNodeName100");
                    if(label) {
                        label.setText(objEvent.nodeName, true);
                    }
                }

                tab.prototype.addOver = function(objEvent) {
                    var label = tibco.admin.enterpriseAssets.servers.nodes.Tabs.getInstance().guiobject.getDescendantOfName("blkAdminNodeName100");
                    if(label) {
                        label.setText("", true);
                    }
                }

                tab.prototype.getComponentPath = function() {
                    return "tibco/admin/enterpriseAssets/servers/nodes/component.xml"
                }

                tab.prototype.listLoaded = function(objEvent) {
                    if(objEvent.status == "SUCCESS") {
                        tibco.admin.enterpriseAssets.servers.nodes.Tabs.getInstance().childList = objEvent.obj;
                        var me = tibco.admin.enterpriseAssets.servers.nodes.Tabs.getInstance();
                        tibco.admin.enterpriseAssets.servers.nodes.Tabs.getInstance().childList.handler = me;
                    }
                }

                tab.prototype.detailsLoaded = function(objEvent) {
                    if(objEvent.status == "SUCCESS") {
                        tibco.admin.enterpriseAssets.servers.nodes.Tabs.getInstance().childDetails = objEvent.obj;
                        var me = tibco.admin.enterpriseAssets.servers.nodes.Tabs.getInstance();
                        tibco.admin.enterpriseAssets.servers.nodes.Tabs.getInstance().childDetails.handler = me;
                    }
                }

                tab.prototype.buttonSelected = function() {
                    tibco.admin.enterpriseAssets.servers.nodes.Tabs.getInstance().childList.onRefresh();
                }

                tab.prototype.beginEdit = function() {
                    tibco.admin.enterpriseAssets.servers.nodes.Tabs.getInstance().beginEditMode();
                    tibco.admin.enterpriseAssets.servers.nodes.Tabs.getInstance().childList.beginEditMode();
                }

                tab.prototype.endEdit = function() {
                    tibco.admin.enterpriseAssets.servers.nodes.Tabs.getInstance().endEditMode();
                    tibco.admin.enterpriseAssets.servers.nodes.Tabs.getInstance().childList.endEditMode();
                }
            });
}